{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# K近邻"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.k近邻分类\n",
    "<P>下图给出了k取值为1时的分类图,由图可知,我们在数据集中添加了3个新数据点(用五角星表示),我们标记了训练集中与他最近的点(用实线连接二者)<br>\n",
    "单一最近邻算法的预测结果就是那个点的标签(对应五角星的颜色).从图中可以看出，预测为0分类的有两个数据，预测为1的有1个数据\n",
    "</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhV1bn48e8iQBgSCEPQQEQweL3cBAiEoAjlGiBAoNJqAZnxloo/RUBoFaVVWmxBxAchwr29WkXCDFIQLEFEURHDFAlCBIWIQyBCGBISlEDg/f2R4WY4Gc+wz/B+nuc8SfZZZ++XTfKedfZe611GRFBKKeW56lgdgFJKKftoIldKKQ+niVwppTycJnKllPJwmsiVUsrD1bXioC1btpR27dpZcWillPJYycnJ50UkuOx2SxJ5u3btOHjwoBWHVkopj2WM+c7Wdr20opRSHk4TuVJKeThN5Eop5eE0kSullIfTRK6UUh5OE7lSSnk4TeSqnIyMDAb1+09+/PFHq0NRSlWDJnJVzktzX2B/0h5emvuC1aEopapBE7kqJSMjg+XL3+KDcQ1YvnyZ9sqV8gCayFUpL819gQmd/ega4sf4Tn7aK1fKA2giV8WKeuNP313w89N3o71ypTyAJnJVrKg3HhJY8GsRElhHe+VKeQBN5Aoo3xsvor1ypdyfJnIFlO+NF9FeuVLuTxO5qrA3XkR75Uq5N03kqsLeeBHtlStv4a2T3SxZWEK5lwP7kthzIJdFeypv1+vaZ64JSCknKTnZbWH8UqvDcRgjIi4/aPfu3UVXCFJKuVJGRgbhd4Xxwag69F97k9SvvuHWW2+1OqwaMcYki0j3stv10kolvPVjmL30vChP5M2T3TSRV8LXa45UlLBtnRdN7sqdeftkN03kFdCaIxUnbFvnxdff9JR78/bJbprIK+DNH8Oqo7KEXfa86Juecme+MNlNE7kN3v4xrDoqS9hlz8uf//SsT7/pKffmC5PddNSKDdOnPA6HVvBK///7j5++8yam23ivGrJUkaK7+6mPFPzyZ+TcJOIfNxg2bASNvtpY6rxM2pbPmiPX+PrxBqXaeuKIAOV9yv4ul3vew35fnTpqxRjzrTHmiDEmxRjjvhm6GnzhY1hVbF1P/M1dhtWrV5Wf/XnjOuMijNdee1SezVcmuzlyQlCMiJx34P4sUfnHMLxuIkFZRW9kqY/4lX6iTMKGgt7M219eJ/XxgFJNn74bIv6xjKdnPecRvRzlvXxlsptHXiN31lA3rTli+42sKGE/18e/dNs915jQpb5XX3tUnu3T/YcQkSofn+4/ZHWodnFUIhdghzEm2RgzyVYDY8wkY8xBY8zBzMxMuw7mrKFuvvIxrCIVvZHZStgZOTdZfvgaT/eqb3NfvvCmp5S7cMjNTmNMaxE5Y4xpBbwPTBGRTypqb8/NTmdOs+3doyt7DqRU2a5XdKTHv4PbYusmL0DvN6+w54cbpbbV94OJXevx30MaVrw/H7pBrJQrVHSz0yHXyEXkTOHXc8aYTUAPoMJEbo//GxZXh/GdjEOvWRcl5+lTHmf5G6/x8O8e9akkVO3ridGRAPzPgRT+5+D1ytt6+LVHpTyB3T1yY0xjoI6I5BR+/z4wR0S2V/Sa2vbIKxoW58heuTcU1lFKeSdnDj+8BfjUGHMY2A/8q7Ikbg9XTLP19RmdSinP4zETgioa2O/IXrkrevxKKVVbHl/G1hXTbL29sI5SyhrOrg7qEYncFeO7dUan0lK8ylmcXR3UIxK5K8Z3+0JhHVU5LcWrnMEV1UE94hq5s8d3e1thHVVzOlpJOUvJ+Rn2zq3w6Gvkzp5m6+szOpWOVlLO4aqS2B7RI3c2q2d0ZmRk8F9jR/LWqnXaC7SAjlZSzuLoktge3SN3NqsL6+i1WWvpaCXlDK4cQKGJ3GK6TJq1dLSSchZXDqDQRG4xvTZrLR2tpJzB1SWxNZFbSNcGtZbWn1fO4uoBFI5cIUjVkO1rs96/ClERq2/yVu+PzXf+P5TjuHxlourc5HP0IyoqSpzh5MmT8vgTU6Vp85Zi6tSRps1byuNPTJWTJ0865Xj2OHPmjDQLbChnZgSIzG5S/DgzI0CaN2koGRkZVofodE8+8Zg0a+gn06c8bsnxe0VHCgWLolT66BUdaUl8SpUFHBQbOdVrhh8mJiYyYtQY/CMG4B/en7pNW5GffY681J3kHd3B+jWriIuLc+gx7VHRIg7gGwsy6AQcpWquouGHXpHI09LSiIyKJuD+Wfi36Vju+bzTx8jdOpeU5AOEhYU57Li1pTNJHTvbTSlf4dXjyBcuii/oidtI4gD+bTriHx7LK4tfdXFktvn6TFK9yauUY3lFjzyoRTCNh82jXrOQCttcv5TBlbdnkXXhnMOOW1tWzyS1mqNnuynlK7y6R3456yJ1m7aqtE3dJsHkZF10UUSVs3omqZV0Ao5SjucVibxJUHPysyvvaedfziQwqLmLIlIV0Qk4SjmeVyTyMaNHk5e6s9I2eUffZ+yY0S6KSNmiE3CUcg6vSOQznpxK3tEd5J0+ZvP5vNPHyEt9n+nTprg4MlWSr9/kVcpZvGJmZ1hYGOvXrGLEqDFcD4/FPyKWuk2Cyb+cyc9H3uP6lx+wfs0qtxh66MtcPttNKR/hFaNWiqSlpfHK4ldZuWo1OVkXkTp+1Ktbly+PfqFJXCnl8Zw+asUY42eMOWSMeddR+6ypsLAwlsQvIuvCOW7cyGf+3L9y7epPtG/f3qqQlFLK6Rx5jXwaYPsitUVmzJgBwN///neLI1FKKedxSCI3xoQCQ4B/OGJ/juLn54efnx+TJ0+2OhSllHIaR/XIFwFPAzcramCMmWSMOWiMOZiZmemgw1btvffeAyAnJ8dlx1RKKVeyO5EbY34JnBOR5MraichrItJdRLoHBwfbe9hq69evHwBTp0512TGVUsqVHNEj7wUMNcZ8C6wF+hpjVjpgvw7Ts2dP3nrrLavDUEopp7A7kYvIsyISKiLtgJHAhyIy1u7IHGjt2rUAfP311xZHopRSjucVMzur0rZtWwAefPBBiyNRSinHc2giF5GPROSXjtyno0ydOpXU1FSsmACllFLO5BM9coD58+cDsGbNGh4YNoLs7GyLI1JKKcfwmUTeoEEDAMaMGcPmjRvYunWrxREppZRj+EwiB0hISMDUb0iD9t14a+Uaq8NRSimH8PpEHhs3BGMMxhjGjx8Ppg4tBk1hT1JS8XZjDLFxQ6wOVSmlasUrythWZtbTfyApKYmAwU/RoG3n4u23PLYCgKvffUFu4gL+OPMpq0JUSim7eH2PPCYmhq2bNpK7bQFXv/+i1HNFSfzdzf/kvvvusyZApZSyk9cncihI5mtXJpCTuLDU9pztC1m7MkGTuFLKo3n9pZUiWVlZNGp9J1eS3+Hnz7fQsNtQGoV0ICsry+rQlFLKLj7RIwd4c8VqLp08RNvLR9m0dgVtLx/lUlqKjl5RSnk8n0nkTZsE8tKL8ziQ9CmxsbHs/2w38+fNJTAwwOrQlFLKLl61ZqdSSnkzp6/ZqZRSyho+c7NTKV9y/fp10tPTuXr1qtWhqFpo0KABoaGh1KtXr1rtNZEr5YXS09MJDAykXbt2GGOsDkfVgIhw4cIF0tPTad++fbVeo5dWlE/Kzs5m5LAHvLYK5tWrV2nRooUmcQ9kjKFFixY1+jSliVz5pC1btrBu42avroJZ3SSelpbG5CnTCGoRTB0/P4JaBDN5yjTS0tKcHKGqSE3fgDWRK5+0YeUyBob5sWHlMqtDsVRiYiKRUdGsO3SWxsPmcdvvN9F42DzWHTpLZFQ0iYmJtdpvVlYW//3f/12r1w4ePLjKiXrPP/88O3furNX+q+Ott97iiSeecMq+T506xd13382dd97JQw89xLVr1+zepyZy5ROGxsWWqna5b+9nvH5/Q/Ym7Sm1fWhcrNWhukxaWhojRo0h4P5ZBPQeR71mIZg6ftRrFkJA73EE3D+LEaPG1KpnXlkiv3HjRqWv3bZtG0FBQZW2mTNnDv37969xXO5g5syZTJ8+nRMnTtCsWTPeeOMNu/epiVz5hOlPz6Jl00bsmtAImd2Es9P9ua1pHc5O90dmN+HD8Y1o2bQRM2b+0epQXWbhonj8Iwbg36ajzef923TEPzyWVxa/WuN9P/PMM6SlpREZGclTTz3FRx99RExMDKNHj6ZTp04A/PrXvyYqKorw8HBee+214te2a9eO8+fP8+2339KxY0ceeeQRwsPDGTBgAD///DMADz/8MG+//XZx+9mzZ9OtWzc6derE8ePHAcjMzCQ2NpZu3brx6KOPcvvtt3P+/PlysW7fvp1u3brRpUsX+vXrV+75rVu3cvfdd9O1a1f69+/P2bNnAfj444+JjIwkMjKSrl27kpOTQ0ZGBn369CEyMpKIiAh2795dal8iwocffsiwYcMAmDBhAps3b67x+S1LE7nyCTExMazf9C7DN8NH3+aXem7XqXxGvAMbNv/LpwqorVq9Gv/wynu1/hGxrFy1usb7fvHFFwkLCyMlJYUFCxYAsH//fv72t7/x5ZdfAvDmm2+SnJzMwYMHiY+P58KFC+X2c+LECSZPnkxqaipBQUFs3LjR5vFatmzJ559/zmOPPcbLL78MwF/+8hf69u3L559/zgMPPMD3339f7nWZmZk88sgjbNy4kcOHD7Nhw4ZybXr37s3evXs5dOgQI0eO5KWXXgLg5ZdfZunSpaSkpLB7924aNmzI6tWrGThwICkpKRw+fJjIyMhS+7pw4QJBQUHUrVswYDA0NJTTp09X97RWSBO58hkxMTEsW7mO0VtKz2b+zfqfeP6FF30qiQNczrpI3aatKm1Tt0kwOVkXHXK8Hj16lBpOFx8fT5cuXbjnnnv44YcfOHHiRLnXtG/fvjgZRkVF8e2339rc94MPPliuzaeffsrIkSMBGDRoEM2aNSv3ur1799KnT5/iuJo3b16uTXp6OgMHDqRTp04sWLCA1NRUAHr16sWMGTOIj48nKyuLunXrEh0dzbJly/jzn//MkSNHCAwMLLUvWzPpHTGySBO58ilZWVlEtfFn0b58bluSzyv78ul0ix9Tp06t9Y09T9UkqDn52ecqbZN/OZPAoPLJrTYaN25c/P1HH33Ezp07SUpK4vDhw3Tt2tXmcDt/f//i7/38/MjPzy/XpmS7km2qU35ERKpMpFOmTOGJJ57gyJEj/O///m9xnM888wz/+Mc/+Pnnn7nnnns4fvw4ffr04ZNPPqFNmzaMGzeOhISEUvtq2bIlWVlZxTGmp6fTunXrKuOsit2J3BjTwBiz3xhz2BiTaoz5i91RKeUk61e8yYdfX2bjxbt4c81m/nnxLg5mCCEtAhk8eDBLliyxOkSXGTN6NHmplY/8yDv6PmPHjK7xvgMDA8nJyanw+ezsbJo1a0ajRo04fvw4e/furfExqtK7d2/Wr18PwI4dO7h06VK5Nj179uTjjz/m1KlTAFy8WP7TR3Z2Nm3atAFg+fLlxdvT0tLo1KkTM2fOpHv37hw/fpzvvvuOVq1a8cgjjzBx4kQ+//zzUvsyxhATE1N8fX/58uX86le/svvf6ogeeR7QV0S6AJHAIGPMPQ7Yr1IOF9ikCXNfXMDHSQeJjY3lo88O8Ld5LxET05eJEycyZcoUJk+ebHWYLjHjyankHd1B3uljNp/PO32MvNT3mT5tSo333aJFC3r16kVERARPPVV+GcVBgwaRn59P586dee6557jnHsenjNmzZ7Njxw66detGYmIiISEh5S51BAcH89prr/Hggw/SpUsXHnrooXL7+fOf/8zw4cP5xS9+QcuWLYu3L1q0iIiICLp06ULDhg2Ji4vjo48+Kr75uXHjRqZNm1Zuf/Pnz2fhwoV06NCBCxcuMHHiRPv/sSLisAfQCPgcuLuydlFRUaKUO1q4cKEAcu+991odil2+/PLLarXbtm2bBDRtJi3uHSGtJ70ubf+wWVpPel1a3DtCApo2k23btjk5Uue5evWqXL9+XUREPvvsM+nSpYvFEdWMrf9D4KDYyKkOqbVijPEDkoEOwFIR2WejzSRgEkDbtm0dcVilHG769Ol06NCBoUOH4u/vz9WrV716mntcXBwpyQd4ZfGrrFw1i5ysiwQGNWfsmNFMTzhAWFiY1SHW2vfff8+IESO4efMm9evX5/XXX7c6JKdxaD1yY0wQsAmYIiJHK2qn9ciVuzt06BDdunUDCuqWlLzp5gmOHTtGx462x4crz2Dr/9Al9chFJAv4CBjkyP0q5Wpdu3YlPT0dKCgpamsiiVLuwhGjVoILe+IYYxoC/YHj9u5XKau1adOmeORFcHAwX331lcURKWWbI3rkIcAuY8wXwAHgfRF51wH7VcpyAQEBxWN+//3f/51du3ZZHJFS5dmdyEXkCxHpKiKdRSRCROY4IjCl3IWfnx83b96kQ4cO9O3bl2XLvLNiYkZGBoP6/Sc//vij1aGoGtKZnUpVgzGGEydOMHz4cH7729/yzDPPWB2Sw7009wX2J+3hpbkv2L0vLWNbsSVLltChQweMMQ6796KJXKkaWL9+PXPmzGH+/PkMHjzY6nAcJiMjg+XL3+KDcQ1YvnyZ3b1yLWNbsV69erFz505uv/12h+1TE7lSNfTcc8+xdu1aEhMTueWWW6pV08PdvTT3BSZ09qNriB/jO/nZ3SvXMra2y9hCwYiodu3a2XV+y7E1S8jZD53ZqbxBUlKSAALItWvXrA6nlOrO7BQROXPmjDQLbChnZgSIzG4iZ2YESPMmDSUjI6PWxz916pSEh4cX/7xr1y5p1KiRfPPNN8XbLly4ICIiP/30k4SHh8v58+dFROT222+XzMxMOXXqlPj5+cmhQ4dERGT48OGyYsUKERGZMGGCbNiwobh9fHy8iIgsXbpUJk6cKCIikydPlrlz54qISGJiogCSmZlZKs5z585JaGhocVxFMS1btkwmT54sIiIXL16UmzdviojI66+/LjNmzBARkV/+8pfy6aefiohITk6OXL9+XV5++WX561//KiIi+fn5cvny5QrPUdG/syI1mdmpPXKlaumee+4pLrZUv359j13Iuag3HhJYkA5CAus4pFdelpaxdR5N5G5EF8H1PO3atSuuqhcUFFRhonFXRdfGn7679Pan78Yh18pL0jK2zqOJ3E04axFc5XxBQUHFC+i2b9++XElWdx7WV7Y3XsTeXrmWsbVdxtZZNJG7AWcugqtco169ety8eZPg4GB69uzJunXrip9z5LA+R6qoN17Enl65lrGtuIxtfHw8oaGhpKen07lzZ373u9/Z/W91aNGs6tKiWaVNnjKNdYfOEtB7XIVtcncnMDIqhCXxi1wYmaqNuLg4tm/fzgsvvMDEiRMJvyuMD0bVof/am6R+9Q233nqr02OoTtGs6VMeh0MreKV/xf256TtvYrqNZ2H8UkeH6HR5eXn4+flRt25dkpKSeOyxx0hJSbE6rGqrSdEsh5SxVfZZtXo1jYfNq7RNwSK4szSRe4DExERmzpzJc889x5qVywuH9dVhfCfDS3NfcJukeGBfEnsO5LJoT+Xtel37zDUBOZgvlbHVRO4GLmddpKkLF8FVzjd//nxuvfVWZj09g6eHBAAFlyoi/rGMp2c955JeeVU+3X/I6hCc6s477+TQIe/+NxbRa+RuwNWL4CrX+P6bE0yKbuT0YX1KaSJ3A85cBFdZo+hG4jM9S/+JOWNYn1KayN2AMxfBVdZw1rA+pWzRRO4GwsLCWL9mFblb55K7O4HrlzKQG/lcv5RB7u4EcrfOZf2aVR69fqIvceawPmfKzs7mgWEjPHaGqi/TRO4mihbBHRkVwpW3Z5G+8DdceXsWI6NCSEk+QFxcnNUhqmqqqDdexF175Vu2bGHzxg1s3brV7n3ZU8YWCsZo//TTT3bHUR0BAQE2t2/fvp277rqLDh068OKLL7okllqzVYDF2Q8tmqW8Wa/oyOJiWpU9ekVHOi2GmhTNKhIzIE4atO8m/QYOtvv4ZYtm1VRVBaWqcv369Wq3bdy4cblt+fn5cscdd0haWprk5eVJ586dJTU1tdbx1IYWzVLKQp/uP1StDo3Vw/9i44ZgjCl+JO3dS4tBU9iTlFRqe2zckBrvu2wZW4AFCxYQHR1N586dmT17NgBXrlxhyJAhdOnShYiICNatW0d8fDxnzpwhJiaGmJiYcvtu164dM2fOpEePHvTo0YOTJ08CBaVtZ8yYQUxMDDNnziQtLY1BgwYRFRXFL37xi+LytqdOnaJnz55ER0fz3HPP2Yx///79dOjQgTvuuIP69eszcuRI3nnnnRqfB1fRceRK+ahZT/+BpKQkAgY/RYO2nYu33/LYCgCufvcFuYkL+OPM8lPsq/Liiy9y9OjR4pmUO3bs4MSJE+zfvx8RYejQoXzyySdkZmbSunVr/vWvfwEF1+mbNm3KwoUL2bVrV6kp8SU1adKE/fv3k5CQwJNPPsm77xYsE/z111+zc+dO/Pz86NevH3//+9+588472bdvH48//jgffvgh06ZN47HHHmP8+PEsXWp7ctbp06e57bbbin8ODQ1l3759NT4PrqI9cqV8VExMDFs3bSR32wKufv9FqeeKkvi7m//JfffdZ/exduzYwY4dO+jatSvdunXj+PHjnDhxgk6dOrFz505mzpzJ7t27adq0abX2N2rUqOKvSUlJxduHDx+On58fubm5fPbZZwwfPpzIyEgeffRRMjIyANizZ0/x68eNs10WQ2yULqmqSqKVtEeulA+LiYlh7coEHhr3XzR49K3i7TnbF7JuZYJDkjgUJMZnn32WRx99tNxzycnJbNu2jWeffZYBAwbw/PPPV7m/kkm15PdFpXJv3rxJUFBQhbVVqkrKoaGh/PDDD8U/p6en07p16yrjsor2yJXycVlZWTRqfSdXkt/h/OsTuZL8Do1COlS5AHJlypaxHThwIG+++Sa5ublAwaWLc+fOcebMGRo1asTYsWP5wx/+UFz2taoyuEXVJdetW0fPnj3LPd+kSRPat2/Phg0bgII3ksOHDwMFC0KsXbsWgFWrVtncf3R0NCdOnODUqVNcu3aNtWvXMnTo0JqeBpexO5EbY24zxuwyxhwzxqQaY8rXbVSqDF1Ew328uWI1l04eou3lo2xau4K2l49yKS2Ft1auqfU+y5axHTBgAKNHj6Znz5506tSJYcOGkZOTw5EjR+jRoweRkZH87W9/409/+hMAkyZNIi4uzubNTiiobHj33XezePFiXnnlFZttVq1axRtvvEGXLl0IDw8vvlm5ePFili5dSnR0dIVj5uvWrcuSJUsYOHAgHTt2ZMSIEYSHh9f6fDib3WVsjTEhQIiIfG6MCQSSgV+LyJcVvUbL2Pq2xMRERowag3/EAPzD+1O3aSvys8+Rl7qTvKM7WL9mlY6bt1N1ytgWeWD4Q/zi3p48OW0qderU4caNGyxaHM+nSXvZtGFd1TtwsXbt2nHw4MEKb4R6C5eWsRWRDCCj8PscY8wxoA1QYSJXvqvkIhr+bf7vl7ResxDq9R5HvfbdGTFqDCnJB3Qmq4uUTdZ+fn78fsZ0fm9RPKrmHHqN3BjTDugKlBunY4yZZIw5aIw5mJmZ6cjDKg+ycFF8QU+8je3eon+bjviHx/LK4lddHJnyFN9++63X98ZrymGJ3BgTAGwEnhSRy2WfF5HXRKS7iHQPDg521GGVh1m1ejX+4f0rbVOwiMZqF0WklOdzSCI3xtSjIImvEpF/OmKfyjtdzrpIXV1EQymHcsSoFQO8ARwTkYX2h6S8mS6ioZTjOaJH3gsYB/Q1xqQUPgY7YL/KC+kiGu4rOzubkcMe0DK2HsjuRC4in4qIEZHOIhJZ+NjmiOCU99FFNNzXli1bWLdxs5axLfTb3/6WVq1aERER4ZI47KEzO5VL6SIa7mvDymUMDPNjw8pldu/L6kSen59f69cWefjhh9m+fbvd+3EFTeQ26KxD59JFNNzD0LjYUuVq9+39jNfvb8jepD2ltg+Ni63xvj29jC1Anz59aN7cQ+7VVKdusqMf7rywxLZt2ySgaTNp0eshaT3pdWn71DvSetLr0qLXQxLQtJls27bN6hCVqlJ1Fpb48MMPpWXTRrJrQiOR2U3KPT4c36jg+V27anz8sgtLvPfee/LII4/IzZs35caNGzJkyBD5+OOP5e2335bf/e53xe2ysrJEpPKFJW6//Xb561//KiIiy5cvlyFDhoiIyIQJE2TIkCGSn58vIiJ9+/aVr7/+WkRE9u7dKzExMSIicv/998vy5ctFRGTJkiU2F5ao6N/hSrqwRC2VnHUY0Hsc9ZqFYOr4Ua9ZCAG9xxFw/yxGjBqjPXPlFWJiYli/6V2Gb4aPvi19KWLXqXxGvAMbNv/LJ8vYehpN5CVYMetQL+MoK8XExLBs5TpGbyldc2nMVmHZynUOL2ObkpJCSkoKJ0+eZOLEifzbv/0bycnJdOrUiWeffZY5c+ZUa381KWNb9Dh27JjN13gDTeQluHrWYWJiIpFR0aw7dJbGw+Zx2+830XjYPNYdOktkVDSJiYkOOY5SlcnKyiKqjT+L9uVz25J8Fu3Lp1vr+j5dxtbTaCIvwZWzDosu4zS4bxLX8q7y48qn+P7lB/hx5VNcy7tKg/sm6WUc5RLrV7zJh19fZuPFu3hzzWY2XryLXSdy7Bq94ullbKHgsk3Pnj356quvCA0N5Y033qj1+XA2u8vY1oa7lrENahFM42HzqNcspMI21y9lcOXtWWRdqHx2YlUmT5nGig9TuHIqhYAuAwnoPKC4nGvuFzvIPfwejdt1YXz/biyJX2TXsZTvqUkZ2zHDf02Pe/swZdqTxWVsX128iANJu1m1YbOTI605LWNbvoytJvISJk+ZxrpDZwnoXfENkNzdCYyMCrE7uQYGNeenvHxaDXve5jX5vNPHOPf2HBr51yMn64Jdx1K+pyaJ3NNoIi+fyPXSSgmunHWYm5tLQOSgSm+sBnQZyJXciq8TKuWLtIxtebr4cglFsw5HjBrD9fBY/CNiqdskmPzLmeQdfZ+81PcdNuvQ1KlDQOcBlbYJ6DKQnM/tny6tlP2UYXsAAA2tSURBVCpw9epVzp47x8WLF7mRn49f3bo0b96cW1q1okGDBlaHV2uayMsomnX4yuJXWblqFjlZFwkMas7YMaOZnuC4VWsk/1q1bqySf90hx1O+R0S8bpidPbKzs0n75hvqNGxCnWZt8POrh9y4zqWfLnPh2DHC7rij2uPYna2ml7x94tJKTcdqh4WFsSR+EVkXznHjRj5ZF86xJH6RQ+t/BDZtVq1yrgFNmznsmMp3NGjQgAsXLtQ4IXirq1evkvbNN/g1DaFOQAuMXz0AjF896gS0wK9pCGnffMPVq1ctjrQgiV+4cKFGnxC8vkdecqHfxsPm0bRwZMi6QztJiIq2bKHfcWPHsjZ5B/X6TKiwzc9H3mP8uLEujEp5i9DQUNLT09FlFQtcvHiRK9duYH6u+I1N8nJJTk52i/oqDRo0IDQ0tNrtvXrUSlpaGpFR0eUW+i2Sd/oYuVvnWrLQrzvHppS3ceXQYmfyyVEr7rzQr5ZzVcp1vH2JQa9O5O6+0K+Wc1XKNbx9iUGvTuSe8C7sihurSvk6b19i0KsTube/Cyulqsfblxj06kTu7e/CSqnq8fZ7Ul6dyL39XVgpVX3efE/Kq4cfQolx5JVMuffk/0DlfGlpaSxcFM+q1au5nHWRJkHNGTN6NDOenOqxPTjlmXxy+CF497uwcj5d/EN5Aof0yI0xbwK/BM6JSERV7d21jK1SJemkLeVunN0jfwsY5KB9KeUW3HlCmVIlOSSRi8gngGdOiVKqAu4+oUypIi67Rm6MmWSMOWiMOaiFfJQn8IQJZUqBCxO5iLwmIt1FpHtwcLCrDqtUremEMuUpvH7UilK1pRPKlKfQRK5UBXRCmfIUDknkxpg1QBJwlzEm3Rgz0RH7VcpK3j6tW3kPh6wQJCKjHLEfpdyNq9ZwVcoeXj9FXymlvIXPTtFXSilvp4lcKaU8nCZypZTycJrIlVKWy87O5oFhI8jOzrY6FI+kiVwpZbktW7aweeMGtm7danUoHkkTuVLKcstWrqFB+268tXKN1aF4JE3kSimXi40bgjGm+JG0dy8tBk1hT1JSqe2xcUOsDtUjOGRCkFJK1cSsp/9AUlISAYOfokHbzsXbb3lsBQBXv/uC3MQF/HHmU1aF6FG0R66UcrmYmBi2btpI7rYFXP3+i1LPFSXxdzf/k/vuu8+aAD2MJnKllCViYmJYuzKBrHcXlNqes30ha1cmaBKvAb20opSyzPnz5yGoDZf3b+La4Xdp2G0ojUI6kJWVZXVoHkV75Eopy0yd8RTXMr6mXW4qm9auoO3lo1xKS9HRKzWkiVwpZYkjR46Qm5PD6JEPcXDvHmJjY9n/2W7mz5tLYGCA1eF5FK1+qJSyhDEGACtykKfS6odKKbcxe/ZsADIyMiyOxDtoIldKuVRubi5z5sxh7Nix3HrrrVaH4xU0kSulXKpNmzYAJCQkWByJ99BErpRymV27dnH58mV27txZfI1c2U8TuVLKJUSEvn370rhxY/r162d1OF5FE7lSyiUefvhhQG9wOoMmcqWU0509e5aEhAT+9Kc/ERgYaHU4XschidwYM8gY85Ux5qQx5hlH7FMp5T2KRqe88MILFkfinexO5MYYP2ApEAf8BzDKGPMf9u5XKeUd1q5dC8Dhw4ctjsR7OaJH3gM4KSLfiMg1YC3wKwfsVynl4W7cuMGoUaOIiIigc+fOVb9A1YojEnkb4IcSP6cXbivFGDPJGHPQGHMwMzPTAYdVSrmTtLQ0Jk+ZRlCLYOr4+RHUIpi27doDkJycbHF03s0RidzWYNByxRNE5DUR6S4i3YODgx1wWOVrbCWKyVOmkZaWZnVoPi8xMZHIqGjWHTpL42HzuO33m2g8bB45Id3xbxzIBx98YHWIXs0R9cjTgdtK/BwKnHHAfpUqlpiYyIhRY/CPGEDjYfNo2rQV+dnnWHdoJwlR0axfs4q4uDirw/RJaWlpjBg1hoD7Z+HfpmPx9nrNQmjedyJ5d93LiFFjSEk+QFhYmIWRei9H9MgPAHcaY9obY+oDI4EtDtiv8mI16V2XTBQBvcdRr1kIpo4f9ZqFENB7HAH3z2LEqDHaM7fIwkXx+EcMKJXES/Jv0xH/8FheWfyqiyPzHXYnchHJB54A3gOOAetFJNXe/SrvVdHH8HWHzhIZFU1iYmKp9poo3Nuq1avxD+9faRv/iFhWrlrtooh8j9YjVy6VlpZGZFR0uY/hRfJOHyN369xSH8ODWgTTeNg86jULqXC/1y9lcOXtWWRdOOe02JVtdfz8uO33mzB1/CpsIzfySV/4G27cyHdhZN5H65Ert1Cb3vXlrIvUbdqq0v3WbRJMTtZFh8aqqqdJUHPysyt/A82/nElgUHMXReR7NJErl6rNx3BNFO5tzOjR5KXurLRN3tH3GTtmtIsi8j2ayJVL1aZ3rYnCvc14cip5R3eQd/qYzefzTh8jL/V9pk+b4uLIfIcmcuVStelda6Jwb2FhYaxfs4rcrXPJ3Z3A9UsZyI18rl/KIHd3Arlb57J+zSodeuhEmsiVS9Wmd62Jwv3FxcWRknyAkVEhXHl7FukLf8OVt2cxMiqElOQDOsbfyXTUinKp2oxaKfnaVxa/yspVq8nJukhgUHPGjhnN9GlTNIkrn1DRqBVN5MrlimdphsfiHxFL3SbB5F/OJO/o++Slvq+zNJWqgA4/VG5DP4Yr5VjaI1dKKQ+hPXIvplUBlfJtmsg9XE3rliilvI8jytgqi1RWPrRe73HUa99dy4cq5QO0R+7BtCqgUgo0kXs0LR+qlAJN5B5NqwIqpUATuUfTqoBKKdBE7tG0KqBSCjSRezStCqiUAh1+6NGKqgKOGDWG65XULdGhh0p5N+2RezitW6KU0lorSinlIbTWilJKeSm7ErkxZrgxJtUYc9MYU+5dQimllPPZ2yM/CjwIfOKAWJRSStWCXaNWROQYgDHGMdEopZSqMZddIzfGTDLGHDTGHMzMzHTVYZVSyutV2SM3xuwEbrXx1B9F5J3qHkhEXgNeg4JRK9WOUCmlVKWqTOQiUnl5vVpITk4+b4z5zs7dtATOOyIeB9O4as5dY9O4as5dY/OWuG63tdGSmZ0iEmzvPowxB22Np7SaxlVz7hqbxlVz7hqbt8dl7/DDB4wx6UBP4F/GmPfsDUgppVTN2DtqZROwyUGxKKWUqgVPntn5mtUBVEDjqjl3jU3jqjl3jc2r47Kk1opSSinH8eQeuVJKKTSRK6WUx3PrRG6MmV5YlOuoMWaNMaZBmeeNMSbeGHPSGPOFMaabG8V2nzEm2xiTUvh43kVxTSuMKdUY86SN5y05Z9WIy2XnyxjzpjHmnDHmaIltzY0x7xtjThR+bVbBawcZY74qPH/PuFFc3xpjjhSeO4fXiK4gtmoVzbPgnFU3LqedswriWmCMOV74d7fJGBNUwWtrfr5ExC0fQBvgFNCw8Of1wMNl2gwGEgED3APsc6PY7gPedfE5i6CgkFkjCkYk7QTutPqcVTMul50voA/QDThaYttLwDOF3z8DzLfxOj8gDbgDqA8cBv7D6rgKn/sWaOnic9YRuAv4COheweusOGdVxuXsc1ZBXAOAuoXfz3fk75hb98gp+KNvaIypS0ESOFPm+V8BCVJgLxBkjAlxk9is0BHYKyI/iUg+8DHwQJk2Vpyz6sTlMiLyCXCxzOZfAcsLv18O/NrGS3sAJ0XkGxG5BqwtfJ3VcTmdrdhE5JiIfFXFS11+zqoZl1NVENeOwt9/gL1AqI2X1up8uW0iF5HTwMvA90AGkC0iO8o0awP8UOLn9MJt7hAbQE9jzGFjTKIxJtzZcVHQ6+1jjGlhjGlEQe/7tjJtrDhn1YkLXH++SrpFRDIACr+2stHGinNXnbgABNhhjEk2xkxyckw1YcnfaDVZec5+S8En47Jqdb7cNpEXXgv8FdAeaA00NsaMLdvMxkudPp6ymrF9DtwuIl2AV4HNzo5LCsoKzwfeB7ZT8LEsv0wzl5+zasbl8vNVC5b8vlVTLxHpBsQBk40xfawOqJCeszKMMX+k4Pd/la2nbWyr8ny5bSIH+gOnRCRTRK4D/wTuLdMmndI9u1Bcc4mjythE5LKI5BZ+vw2oZ4xp6ezAROQNEekmIn0o+Gh3okwTS85ZVXFZdb5KOFt0ianw6zkbbaw4d9WJCxE5U/j1HAWzrXs4Oa7qsupvtEpWnDNjzATgl8AYKbwoXkatzpc7J/LvgXuMMY2MMQboBxwr02YLML5wJMY9FFziyHCH2IwxtxY+hzGmBwXn+oKzAzPGtCr82paC1ZvWlGliyTmrKi6rzlcJW4AJhd9PAGyVaD4A3GmMaW+MqQ+MLHydpXEZYxobYwKLvqfgptrRsu0sYsU5q5IV58wYMwiYCQwVkZ8qaFa78+WMO7YOvPP7F+A4BSd4BeAP/D/g/xU+b4ClFNzlPUIld6gtiO0JIJWCywh7gXtdFNdu4MvC4/Yr3Gb5OatGXC47XxS8iWQA1ynoAU0EWgAfUPBJ4QOgeWHb1sC2Eq8dDHxdeP7+6A5xUTDC4XDhI9XRcVUS2wOF3+cBZ4H33OScVRmXs89ZBXGdpOD6d0rh4++OOl86RV8ppTycO19aUUopVQ2ayJVSysNpIldKKQ+niVwppTycJnKllPJwmsiVUsrDaSJXSikP9/8BDWswHI098OcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "mglearn.plots.plot_knn_classification(n_neighbors=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 设置k值为3\n",
    "mglearn.plots.plot_knn_classification(n_neighbors=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>当设置k值为3时,结果如上图所示:新数据有三条(五角星表示),预测1分类的数据有两条.0分类的数据有一条</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set predictions:[1 0 1 0 1 0 0]\n",
      "Test set accuracy:0.86\n"
     ]
    }
   ],
   "source": [
    "# 使用K最近邻算法分类器\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "# 准备数据集\n",
    "X,y = mglearn.datasets.make_forge()\n",
    "# 划分训练集和,测试集\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)\n",
    "# 实列化Knn类\n",
    "clf = KNeighborsClassifier(n_neighbors=3) # 设置k值为3\n",
    "# 构造Knn分类器,输出训练集数据\n",
    "clf.fit(X_train,y_train)\n",
    "# 预测测试集数据\n",
    "print(f\"Test set predictions:{clf.predict(X_test)}\")\n",
    "# 评估模型精确度\n",
    "print(f\"Test set accuracy:{round(clf.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2f40005e430>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "### 分析KNeighborsClassifier\n",
    "import matplotlib.pyplot as plt\n",
    "fig,axes=plt.subplots(1,3,figsize=(10,3))\n",
    "for n_neighbors,ax in zip([1,3,9],axes):\n",
    "    # fit方法返回对象本身的信息,所以我们可以将实列化和拟合放在一行代码中\n",
    "    clf=KNeighborsClassifier(n_neighbors=n_neighbors).fit(X,y)\n",
    "    mglearn.plots.plot_2d_separator(clf,X,fill=True,eps=0.5,ax=ax,alpha=0.4)\n",
    "    mglearn.discrete_scatter(X[:,0],X[:,1],y,ax=ax)\n",
    "    ax.set_title(f\"{n_neighbors}neighbors\")\n",
    "    ax.set_xlabel(\"feature0\")\n",
    "    ax.set_ylabel('feature1')\n",
    "axes[0].legend(loc=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>由上图可知，K值越大,对应的决策边界也就越平滑,即模型的复杂度越低。所以我们有一种<strong>猜想</strong>:K值应该取居中一点的数据</P>\n",
    "    <P>下面我们使用乳腺癌数据集来验证这一<strong>猜想</strong></P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2f40144c8b0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import load_breast_cancer\n",
    "cancer = load_breast_cancer()\n",
    "X_train,X_test,y_train,y_test = train_test_split(cancer.data,cancer.target,stratify=cancer.target,random_state=66)\n",
    "\n",
    "training_accuracy =[]\n",
    "test_accuracy = []\n",
    "# n_neighbors取值从1到10\n",
    "neighbors_settings=range(1,11)\n",
    "for n_neighbors in neighbors_settings:\n",
    "    # 构造模型\n",
    "    clf = KNeighborsClassifier(n_neighbors=n_neighbors)\n",
    "    clf.fit(X_train,y_train)\n",
    "    # 记录训练集的精度\n",
    "    training_accuracy.append(clf.score(X_train,y_train))\n",
    "    # 记录测试集的精度(范化)\n",
    "    test_accuracy.append(clf.score(X_test,y_test))\n",
    "plt.plot(neighbors_settings,training_accuracy,label='training acccuracy')\n",
    "plt.plot(neighbors_settings,test_accuracy,label='test accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel(\"n_neighbors\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>由上图可知当k值取6的时候,范化经度最好</P>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.K近邻回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_knn_regression(n_neighbors=1)\n",
    "# k近邻回归算法的实质是对K值范围内的数据做一次线性回归\n",
    "# k近邻回归算法适用于标签是连续型数据的数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAAGNCAYAAAC2Wc0RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde1yUZf4//td7BhBGUPOQJ4SxAuTgETto7Uda7aDpbmXWFra5ny0qH/VbO33K6GhRtrW7bfW1otNmUesp3UXcykPmtq4W5AmPWTGIWqKmooMCM9fvD8AABxhgZu57rnk9Hw8eyT333PO+7uaaeXNd1/2+RSkFIiIiIgoci9EBEBEREYUaJmBEREREAcYEjIiIiCjAmIARERERBViY0QEQkfGuwTXRAN4C8PvFWHzc6HhCgciC0+dcqSk850QhRngVpHkUFRWdHRYW9iaANHB0kgKouGtx1EL7wrOnlEw5kHo0tdLoeELBJ59URD344P6z//jHvgcuvzyG5zww3ACKa2pqbk1PTz9gdDAU2jgCZiJhYWFv9unTJ7lXr14/WSwWZsYUMB/jYzsAlNnLrDfhpoMGhxMSZs1aaweA9est1gceGMpzHgBut1vKy8tTfvjhhzcB/MroeCi0cZTFXNJ69ep1jMkXBZKCwmZs7gYAm7CpqwLffv7mdiusXHmgGwCsXHmgq9vNcx4IFotF9erV6yhqZxmIDMUEzFwsTL4o0L7Ft5E1qBEAqEGN5Tt8F2l0TLr7+uufIk+dcgkAnDzpsmzYcITnPEDqPmP53UeG45uQKMStx/qubrgBAG64sR7ruxockvaWLNnX1V17yuF2A0uW7OU5JwoxTMDotIMHD1pnz57dqz3PHTNmzHkHDx60trTPjBkz+i1ZsiSmfdE176WXXurx29/+Nq6lfZYuXRqzfPnyzt4c79SpU5KamprckfPRVu+99163oqIiQ0ZB1mN99xrUWIDaEbD1WH9WR47X0fM2a9assysqKlr9bFq6dGnMpZdeel5L+6xduzZq3rx5pktulizZ272qym0BgKoqt2XJkr1Bcc59wWazDQeAkpKS8CuvvPKctsTlzecMUbDgIvwg9tpr33afNWtb/x9+OBnRp09k1WOPpey9445zD7f3eIcOHbK+9dZbZz/00EPlTR+rqalBWFjzb5fPP/98d2vHf/HFF/e1N7aOWrVqVUx0dLTrsssuO9Havp9++mn0yJEjj7d0PprjdruhlILV2rbviCVLlnSrqak5mp6efrJNT/TCk3jy3I3Y2K25x62wNpr23ou9tmtwTXpz+w/DsCOP4/Fvm3u8Peetoddff733bbfddjgmJsbdnuc3VFhYaCssLOx8ww03HO3osdriiivWnPvppz82e87Dw6XROd+5s8ImsqDZc3755b2PfPLJ/5j2nFdXVyM8PLxNz7Hb7dUff/zxd22Jy5vPGaJgwRGwIPXaa992v+eejfH795+MUArYv/9kxD33bIx/7bVvu7f3mPfdd1/snj17Og0aNCjl9ttvj126dGnMhRdemDhp0qSBSUlJqQAwbty4c1NTU5PPO++81BdeeKFn/XP79+8/eP/+/WE7d+6MOOecc1J/85vfxJ933nmpF198ccLx48cFACZPnmx/5513zqrf/5577umXkpKSnJiYmLJhw4ZIANi3b1/Y6NGjE1JSUpJvuumm+H79+g3ev3//GZnfX//61x52uz3t/PPPT1q7dm10/fYPPvig65AhQwYlJyenjB49OnHPnj1hO3fujJg7d26v1157rfegQYNSPv7442hP+9UfY9myZV0mTJhwrOn5OHr0qGXUqFGJ9TG///773QCgvs1Tp06NS01NTfn2228jHnjggb4DBw5MHT16dMKkSZMGPvbYY70BYOvWrZ1+8YtfJKSmpianp6cnbdiwIXL58uWdV6xY0e2RRx6JHTRoUMrWrVs7tff/oSfTMK2sP/o7IxDh8cvVhdq1SM39Xi8CEe7+6O+chmllLb1e0/MGAI8++mjvtLS05MTExJR77rmnHwAcO3bMkpGRcV5SUlJKQkJC6htvvHHW008/ffaBAwfCx4wZk3jhhRcmNj32woULuwwcODA1PT09aeHChacTnM8++8w2fPjwQcnJySnDhw8ftGnTpk4nT56UZ599tl9+fv5ZgwYNSnnjjTfO8rRf62ew7V54YWhZUlKMMyrK6vGcV1craen3elFRVvegQTHOF14Yatg579+//+A777yz/+DBg5MHDx6cXFxc3Amo7c+33npr7IUXXpg4ffr0WE/vbQDYsWNHxLBhwwalpaUl/+EPf+hXf9ydO3dGJCQkpAK1f+BlZWXFJiYmpiQmJqbk5OSc7Smu+s8ZAHjiiSd6JyQkpCYkJKTOmjXr7PpjNvf5Q2Q2HAELUrNmbet/8qS7UQJ98qTbMmvWtv7tHQX705/+VDZx4sSoHTt2bANqp3g2b97cecOGDVsHDRpUBQB5eXklvXv3dh0/flyGDx+eMnXq1J/69Onjanic0tLSyPfff/+70aNHOyZMmHDO3Llzz5o+ffoZMfXs2bNm27Zt22fPnt1r9uzZvefNm+d46KGH+o0ZM6bi2Wef/WHhwoVdPvzww55Nn+dwOMJnz57dr6ioaHv37t1do0ePTkpLS3MCwGWXXXb8N7/5zQ6LxYI///nPPWfNmtXnjTfeKPvtb39bHh0d7Zo1a9aPAFBeXm71tB8AfPHFF13++Mc/7h82bFhlw/NRXV2NgoKC3d27d3fv378/7MILLxx00003HQGAkpKSyDfeeKPk/fffL12zZo0tPz//rC1btmyrrq6WYcOGpQwfPtwJALfeemt8bm6uY/DgwadWrVrV+c4774xbt27drnHjxh2ZOHHi0d/97nc/tef/XUviEX/qr/jr9vmY33sxFverQY0oeP7C90QgKgxh6mpcve8G3PCjpZW/25q+jz766KMuu3fvjty8efN2pRTGjRt33r/+9a/oH3/8MaxPnz7Vq1ev3g3UjuL06NHD9eqrr/b+/PPPd/Xt27em4XGdTqfcdddd9uXLl+9MTU09NXHixNPTV0OHDj355Zdf7ggPD8eSJUti/u///i/2k08++XbmzJn7CgsLO8+dO7cUAA4fPmzxtF8bTqdXBg/ueqq4+PLts2Zt6/388zv7VVW5xe2G1+fcYoGKiLCoBx5I3PfYY6k/Wq0tP9Vf57xely5dXFu2bNn+yiuv9Lj77rsHfPbZZ7sB4Ntvv438z3/+syssLAyjRo1K9PTenj59etytt95aftdddx169tlnPU6T/ulPf+rlcDg6bd26dVt4eDh+/PFHa+/evZuN69///rftgw8+6FFUVLRdKYX09PTksWPHVvTs2dPl7ecPkdGYgAWpH344GdGW7e01ZMiQE/XJFwA899xzvQsKCrrVvtYP4Vu3bo3s06dPo2m9/v37nxo9enQlAAwfPtxZUlLicZThpptu+gkALrjgAuc///nPswDgyy+/jF6yZMluALjuuuuOdenSxdX0eWvWrOl80UUXVfTr168GAK699trDu3btigSA77//PuLqq6+OLS8vD6+qqrIMGDDglKfXbm6/kpKS8G7dutV4mopxu90yY8aM2HXr1kVbLBYcOHAgoqysLAwA+vbtWzV27NgTALB69ero8ePHH4mOjlYA1GWXXXYEAI4ePWrZsGFD9JQpU86tP2ZVVVVA/jq3woobceOPozH6yPN4/pxylEdWoarVEfAIRLh7odfJB/DAd/GI93guW/Pxxx93WbNmTZeUlJQUAHA6nZYdO3ZEjh07tiI7O3vAnXfe2f/Xv/710SuvvLLFavAbN26MjI2NPTV48OBTAJCZmXnozTff7AUAhw8ftt5www0DS0pKIkVEVVdXezyv3u7nC2FhFsyalfbjlCkDjkyZ8t9zSkudkZWVrlbPeWSkxW23dz45f/6o7wYP7mroOa93yy23HAaA22677fAjjzwyoH77tdde+1NYWFiL7+2vv/46+l//+te3AHD77bcfeuqpp2KbHn/VqlVd7rjjjvL6aczevXuf0e8bWr16dfSECROOdOnSxQ0AV1111U+fffZZzJQpU454+/lDZDROQQapPn0iq9qyvb1sNtvpRGTp0qUxn3/+eUxhYeGOnTt3bktOTq6srKw84z0UERFxen2L1WpVNTU1Hr/kIiMjFQCEhYWd3sfbOzOIeP7evOuuu+KmT59+YNeuXdteeeUVx6lTpzy+x5vbb/HixV3HjRvncb3Q66+/3v3QoUNhW7Zs2b5jx45tPXr0qK5vf8Pz1FwbXC4XYmJianbs2LGt/ue7777b6lWDfaR+NGwCJuwPQ1iLJzsMYWoCJux/CS9tb2/yBdSejxkzZuyvb3NpaWnxPffcc3DIkCGnvv76622DBw+uzM7O7n///ff3be1Yzf1/f/DBB/uPGTOm4ptvvtman5+/u6rKc3Lp7X6+VD8adtdd5+2PiGi5zExEhEXdfXfC/uLiK7a3N/kCfHvOAcBi+fk0ify8fi06OtoNtP7ebq28jlKq0XG9aV9zvP38ITIaE7Ag9dhjKXsjIy2NRmkiIy3uxx5L2dveY3bt2tV14sSJZt8TR44csXbt2tUVExPj3rBhQ+SmTZu8uqqwLS644ILj7733Xnegdhrl2LFjZ6xm/5//+Z8T69ati/nhhx+sp06dksWLF5++gqyiosIaFxdXDQB/+9vfetRvj4mJcVVUVFhb2+/TTz/t8qtf/eoYcOb5OHr0qLVnz57VnTp1Uvn5+TH79u3zONqYkZFx/JNPPunqdDrl6NGjlhUrVnQDgO7du7tjY2Or3n777bOA2gX7//3vf6MAIDo62nXs2LGA9EcrrLDDftIKz+uTGuzntsNe2dqUY1NNz9v48eOPvffeez2PHj1qAYDvv/8+fO/evWElJSXhMTEx7unTpx+eMWPGjxs3brQBQOfOnV31+zY0bNiwk2VlZRH1a+T+/ve/n17veOzYMWtsbGwVALz++uunp627dOniOn78uKW1/fwtLMyCIUO6ngwPlxbPeXi4uIcO7VrZ2pRjU/465/Xmzp3bHQDeeuuts4YPH37GhSwtvbdHjBhx/I033ugOAG+88UaPps8FgHHjxh177bXXelVXVwMAfvzxR2tLcf3yl788vmzZsm4VFRWWY8eOWZYtW3bWpZdeWuHl6SIyBSZgQeqOO849/Je/DHP07RtZJQL07RtZ9Ze/DHN05CrIPn36uNLT048nJCSk1i/kbWjy5MlHa2pqJDExMeXhhx/uN3To0FavKGyr2bNn71u1alWXlJSU5IKCgq69evWq7tatW6PpiPj4+OoHH3xw30UXXZR8ySWXJA4ZMsRZ/1h2dva+G2+88dz09PSkHj16nF43Mnny5CMFBQXd6hfhe9qvpqYG33//feTw4cNPejoft9566+FNmzZ1TktLS37//fe7Dxw40OMVi2PGjHFeeeWVR1NSUlInTJhw7pAhQ0507drVBQAffvjhd++8807P+kXQixYt6gYAmZmZh1966aU+ycnJPl+E78k6rOt2CqdavFTzFE5Z21OSoul5u/baa49NmTLl8Pnnnz8oMTEx5Zprrjn3yJEj1qKioqhhw4YlDxo0KOW5557r+9hjj+0HgFtuueXg+PHjE5ouCLfZbOrll192TJw48bz09PSkAQMGnB7tffDBB3944oknYkeMGDHI5fr57TJ+/PiKXbt2RdUvwm9uv0BYvHhvN6fT1eI5dzpd1sWL216Swl/nvN6pU6dkyJAhg+bMmdP7pZde2uNpn+be23PmzCnNzc09Oy0tLfno0aMe23/PPfeUx8bGVg0aNCg1KSkp5a233ureUlyXXHKJ86abbjo0YsSI5PT09OSbb765/OKLL+b9NCmo8GbcJrJp06aSoUND+55wlZWVEhYWpsLDw7FixYrOd911V3z9wmJ/++STT6Lffffd7h988EFpR491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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# k值取3\n",
    "mglearn.plots.plot_knn_regression(n_neighbors=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用K近邻回归算法,预测wave数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X的前5条数据:[[-0.75275929]\n",
      " [ 2.70428584]\n",
      " [ 1.39196365]\n",
      " [ 0.59195091]\n",
      " [-2.06388816]]\n",
      "y的前5条数据:[-0.44822073  0.33122576  0.77932073  0.03497884 -1.38773632]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsRegressor\n",
    "X,y = mglearn.datasets.make_wave(n_samples=40) # 准备数据\n",
    "print(f\"X的前5条数据:{X[:5]}\")\n",
    "print(f\"y的前5条数据:{y[:5]}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集的预测:[-0.05396539  0.35686046  1.13671923 -1.89415682 -1.13881398 -1.63113382\n",
      "  0.35686046  0.91241374 -0.44680446 -1.13881398]\n"
     ]
    }
   ],
   "source": [
    "# 将wave数据集划分为训练集和测试集\n",
    "X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0)\n",
    "# 模型实列化,设置K为3\n",
    "reg=KNeighborsRegressor(n_neighbors=3)\n",
    "# 利用训练数据和训练目标值来拟合模型\n",
    "reg.fit(X_train,y_train)\n",
    "# 对测试集做出预测\n",
    "print(f\"测试集的预测:{reg.predict(X_test)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set R^2:0.83\n"
     ]
    }
   ],
   "source": [
    "print(f\"Test set R^2:{round(reg.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# K-NN算法总结"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K-NN的参数\n",
    "<P>Kneighbors分类器有两个重要参数:①邻居个数,②数据点之间距离度量方法。在实践中,使用较小的邻居数(3个或5个)往往会取得较好的效果。距离度量默认为欧氏距离</P>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K-NN的优缺点\n",
    "<p>①模型简单,容易理解.②构建模型速度较快</p>\n",
    "<P>①这一算法对于具有许多特征(几百或更多)的数据集往往效果不好。②不擅长处理稀疏数据集(大多数特征的大多数取值为0)</P>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K-NN的适合场景\n",
    "<P>①处理特征数较少(20以下)且数据量较小(数据量1000以下)的数据集。②鸢尾花案列</P>\n",
    "\n",
    ">  <strong>注意:不要用K-NN去处理稀疏数据集</strong>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
